package com.example.learningnote.receivers;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Build;
import android.util.Log;

import com.example.learningnote.services.MonitorService;

// BroadcastReceiver 用于接收和处理系统或应用发出的广播消息。它可以响应系统事件（如开机、电池电量变化）或自定义事件（如应用内通知）。 是一个轻量级组件，通常用于触发短暂的操作。
// 系统广播：由 Android 系统发出，如 ACTION_BOOT_COMPLETED、ACTION_BATTERY_LOW。
// 自定义广播：应用内部或跨应用发送的广播，使用 sendBroadcast()。
// 有序广播：按优先级顺序处理，使用 sendOrderedBroadcast()。
//
// 静态注册：在 AndroidManifest.xml 中声明，适合监听系统广播，接收器在应用未运行时也能工作。
// 动态注册：在代码中使用 registerReceiver()，适合运行时动态控制，需在适当位置（如 onPause()）注销。
//
// 系统广播：监听开机事件启动服务、低电量提醒。
// 自定义广播：应用内模块通信，如下载完成通知界面更新。
// 有序广播：多应用按优先级处理同一事件。


public class BootReceiver extends BroadcastReceiver {
    private static final String TAG = "BootReceiver";

    @Override
    public void onReceive(Context context, Intent intent) {
        if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())) {
            Log.d(TAG, "Device booted, starting MonitorService");
            Intent serviceIntent = new Intent(context, MonitorService.class);
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
                context.startForegroundService(serviceIntent);
            }
        }
    }
}